iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 25
1
Software Development

轉職初新者系列-C#初學攻略心法系列 第 25

[2018鐵人賽Day25]C#初學攻略心法-閱覽背包清單(讀取Excel)

  • 分享至 

  • xImage
  •  

好了啦,還好林北練體過,要不然還不被你們活活打死嗎!!
還有沒有良心啊!(呃...你哪時候跑去練體的...)

上週晚上你們不是有聽到一些莫名其妙的聲音嗎?
辰巳:你是說那些...啊啊啊,呃呃,親愛的你好棒之類的?
角龍:...我們還是不認他,把它往死裡打吧!

呃...最好有這種聲音,你們倆死兔崽子,別挖坑給我跳啊!!!

既然有外掛了,那就好好利用吧
抽出袖口的隱藏卡,Teleport Group
卡片掃描Get Barcode,插入appSettings參數TeleportGroup團體瞬移,Value位置:文塵星城(位於邪魔主城附近的小城市)

(一眨眼就到達目的地了)

檢查一下我們的背包清單吧~

==============================

[Step by Step簡易實戰]
Step1.
請建立個新方案為ExcelRead方案

https://ithelp.ithome.com.tw/upload/images/20180113/20091333QPXRRS5Ap5.jpg

Step2.
請在工具箱,拉出一個Button、一個TextBox
並點擊Button按鈕,來撰寫相關Code

https://ithelp.ithome.com.tw/upload/images/20180113/20091333mp8ZfVfdHA.jpg

Step3.
接著建立一個Excel(需要在Office2007以上版本建立的檔案,副檔名為.xlsx)

https://ithelp.ithome.com.tw/upload/images/20180113/20091333EvvpnIxuIa.jpg

Step4.
寫撰寫匯入Excel使用的方法,並引入相關命名空間
這邊需注意的點是,提供者名稱 Microsoft.Jet.OLEDB.4.0適用於2003以前版本,Microsoft.ACE.OLEDB.12.0 適用於2007以後的版本處理 xlsx 檔案
回傳值格式為DataTable,其餘的可以看一下註解理解一下

public DataTable ImportExcel(string SheetName)
{
    string windowFilter = "Excel files|*.xlsx";
    string windowTitle = "匯入Excel資料";

    OpenFileDialog openFileDialogFunction = new OpenFileDialog();
    openFileDialogFunction.Filter = windowFilter; //開窗搜尋副檔名
    openFileDialogFunction.Title = windowTitle; //開窗標題

    DataTable dataTable = new DataTable();

    if (openFileDialogFunction.ShowDialog() == DialogResult.OK)
    {
        //定義OleDb======================================================
        //1.檔案位置
        string FilePath = openFileDialogFunction.FileName;

        //2.提供者名稱  Microsoft.Jet.OLEDB.4.0適用於2003以前版本,Microsoft.ACE.OLEDB.12.0 適用於2007以後的版本處理 xlsx 檔案
        string ProviderName = "Microsoft.ACE.OLEDB.12.0;";

        //3.Excel版本,Excel 8.0 針對Excel2000及以上版本,Excel5.0 針對Excel97。
        string ExtendedString = "'Excel 8.0;";

        //4.第一行是否為標題(;結尾區隔)
        string HDR = "No;";

        //5.IMEX=1 通知驅動程序始終將「互混」數據列作為文本讀取(;結尾區隔,'文字結尾)
        string IMEX = "0';";

        //=============================================================
        //連線字串
        string connectString =
                "Data Source=" + FilePath + ";" +
                "Provider=" + ProviderName +
                "Extended Properties=" + ExtendedString +
                "HDR=" + HDR +
                "IMEX=" + IMEX;
        //=============================================================

        using (OleDbConnection Connect = new OleDbConnection(connectString))
        {
            Connect.Open();
            string queryString = "SELECT * FROM [" + SheetName + "$]";
            try
            {
                using (OleDbDataAdapter dr = new OleDbDataAdapter(queryString, Connect))
                {
                    dr.Fill(dataTable);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("異常訊息:" + ex.Message, "異常訊息");
            }
        }
    }

    return dataTable;
}

Step4.
在Button的地方填入相關執行的Code,並將回傳的值

DataTable TableValue = ImportExcel("Table1");
dataGridView1.DataSource = TableValue;

Step5.
按下F5執行程式,測試看看是否功能正確吧

https://ithelp.ithome.com.tw/upload/images/20180113/20091333BdTRdXbrmx.jpg

https://ithelp.ithome.com.tw/upload/images/20180113/20091333er1JJ8BcdW.jpg


上一篇
[2018鐵人賽Day24]C#初學攻略心法-組態檔設定值(APP.config)的更新方法(下篇)
下一篇
[2018鐵人賽Day26]C#初學攻略心法-魔法儲存書卡(介面Interface)
系列文
轉職初新者系列-C#初學攻略心法30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言